package api

import (
	"goProject/api/admin"
	"goProject/api/auth"
	"goProject/api/public"
	"goProject/api/root"
	"goProject/api/user"
	"net/http"
	"time"

	"gitee.com/ruige_fun/util/std"

	"github.com/kataras/iris/v12"
)

func router(app *iris.Application) {
	app.Any("/ping", ping)
	public.Router(app.Party("/public")) //所有人，都可以访问接口，不需要登录账号即可访问。
	root.Router(app.Party("/root"))     //仅ROOT角色可以访问的接口。
	admin.Router(app.Party("/admin"))   //仅ROOT和ADMIN角色可以访问的接口。
	user.Router(app.Party("/user"))     //所有用户都可以访问的接口。

	auth.AutoAddPolicy()
}

func ping(c iris.Context) {
	body, err := c.GetBody()
	c.JSON(std.NewResp(http.StatusOK, "", map[string]any{
		"ip":            c.RemoteAddr(),
		"header":        c.Request().Header,
		"url":           c.Request().URL,
		"uri":           c.Request().RequestURI,
		"method":        c.Method(),
		"form":          c.Request().Form,
		"body":          body,
		"read_body_err": err,
	}, time.Now().Unix()))
}
